﻿using Ecommerce.Web.Code;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Ecommerce.Web.UserControl
{
    public partial class FormaPagamentoCartao : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                CarregarAnos();
                CarregarDias();
            }
        }

        private void CarregarDias() 
        {
            ListItemCollection lic = new ListItemCollection();
            lic.Insert(0, new ListItem("Mês", "0"));

            for (int i = 1; i < 13; i++)
            {
                if(i < 10)
                    lic.Add(new ListItem("0" + i.ToString(), "0" + i.ToString()));
                else
                    lic.Add(new ListItem(i.ToString(), i.ToString()));
            }
            ddlMesValidade.DataSource = lic;
            ddlMesValidade.DataBind();
        }

        private void CarregarAnos() 
        {
            ListItemCollection lic = new ListItemCollection();
            int anoAtual = DateTime.Now.Year;
            lic.Insert(0, new ListItem("Ano", "0"));
            lic.Add(new ListItem(anoAtual.ToString(),anoAtual.ToString()));

            for (int i = anoAtual; i < anoAtual + 11; i++)
                lic.Add(new ListItem(i.ToString(), i.ToString()));

            ddlAnoValidade.DataSource = lic;
            ddlAnoValidade.DataBind();
        }

        protected void btnSelBankline_Click(object sender, EventArgs e)
        {
            Page.Validate();
            if (Page.IsValid)
            {
                //int parcelas = int.Parse(ddlParcelas.SelectedValue);

                Carrinho.Instance.FormaPagamento = this.ObterFormaPagamento();
                Carrinho.Instance.DadosCartaoCredito = new Pagamento.CartaoCredito.EAutorizacao();
                Carrinho.Instance.DadosCartaoCredito.CodigoSegurancaCartao = txtCodigoSeguranca.Text.Trim();
                Carrinho.Instance.DadosCartaoCredito.NumeroCartao = txtNumCartao.Text.Replace("-", "").Trim();
                Carrinho.Instance.DadosCartaoCredito.Portador = txtNome.Text.Trim();
                Carrinho.Instance.DadosCartaoCredito.ValidadeAno = ddlAnoValidade.SelectedValue.Substring(2, 2);
                Carrinho.Instance.DadosCartaoCredito.ValidadeMes = ddlMesValidade.SelectedValue;
                Carrinho.Instance.DadosCartaoCredito.Filiacao = ConfigurationManager.AppSettings["numeroEstabelecimento"];

                Carrinho.Instance.DadosCartaoCredito.Transacao = "04";
                Carrinho.Instance.DadosCartaoCredito.Parcelas = "00";

                //if (parcelas.Equals(1))
                //{
                //    Carrinho.Instance.DadosCartaoCredito.Transacao = "04";
                //    Carrinho.Instance.DadosCartaoCredito.Parcelas = "00";
                //}
                //else
                //{
                //    Carrinho.Instance.DadosCartaoCredito.Transacao = "08";
                //    Carrinho.Instance.DadosCartaoCredito.Parcelas = ddlParcelas.SelectedValue;
                //}

                //TODO: Remover o código para ir a produção.
                //Carrinho.Instance.DadosCartaoCredito.Total = "0.20";

                //#if DEBUG
                //    Carrinho.Instance.DadosCartaoCredito.Total = "0.01";
                //#else
                //    Carrinho.Instance.DadosCartaoCredito.Total = Carrinho.Instance.Total.ToString("c").Replace("R$", "").Replace(".", "").Replace(",", ".");
                //#endif

                Response.Redirect("~/FecharPedido.aspx");
            }
        }

        private string ObterFormaPagamento()
        {
            if (rbDiners.Checked)
                return "DIN";
            else if (rbMaster.Checked)
                return "MAS";
            else if (rbVisa.Checked)
                return "VIS";
            else if (rbAmex.Checked)
                return "AMX";

            return string.Empty;
        }
    }
}